package com.donleo.stmg.entity.mapper;

import com.donleo.stmg.entity.model.Permission;
import com.donleo.stmg.entity.model.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.donleo.stmg.entity.vo.UserVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 用户表 Mapper 接口
 * </p>
 *
 * @author liangd
 * @since 2020-12-21
 */
public interface UserMapper extends BaseMapper<User> {

    /**
     * 根据code查用户
     *
     * @param code
     * @return
     */
    List<User> getUserByCode(String code);

    /**
     * 根据用户编号查询权限
     *
     * @param userCode
     * @return
     */
    List<Permission> getPermissionsByUserId(String userCode);

    /**
     * 查询所有
     *
     * @param userVo
     * @return
     */
    List<User> findAll(UserVo userVo);

    /**
     * 统计条数
     *
     * @param userVo
     * @return
     */
    long getCount(UserVo userVo);

    /**
     * 单个查询
     *
     * @param userId
     * @return
     */
    User findById(Integer userId);

    /**
     * 根据角色编号查用户
     *
     * @param roleCode
     * @return
     */
    List<User> findUserByRoleCode(String roleCode);

    /**
     * 根据用户编号查询
     *
     * @param code
     * @return User
     */
    User findByCode(String code);

    /**
     * 根据角色编号查用户
     *
     * @param teamCode
     * @return
     */
    List<User> findByTeam(@Param("teamCode") String teamCode,
                          @Param("pageNum") Integer pageNum,
                          @Param("pageSize") Integer pageSize);

    /**
     * 统计条数小组成员条数
     * @param teamCode
     * @return
     */
    long getCountByTeamCode(@Param("teamCode") String teamCode);

    /**
     * 查询未分组的用户
     *
     * @return
     */
    List<User> findUngroupedUser();


}
